import axios from 'axios'
import {Message} from "element-ui";
import router from "../router";
//请求拦截器
axios.interceptors.request.use(config=>{
    //判断一下token是否存在
    console.log(window.sessionStorage.getItem('tokenStr')+"+++++++++++++++")
if (window.sessionStorage.getItem('tokenStr')){
    //就把获取到的token放到请求头上，请求会携带我们的token
    config.headers['token']=window.sessionStorage.getItem('tokenStr');
}
return config;
},error=>{
    console.log(error);
})




//响应的拦截器
//对相应和请求进行一个处理，而不是到后端去进行判断
//非常麻烦
//这个success成功，不是说你成功的返回了，而是说你只是成功的调到了接口
axios.interceptors.response.use(success=>{
//业务逻辑错误
    //判断你是否调到了接口
    if (success.status && success.status == 200){
        //判断后端给的数据对不对
        //判断逻辑
        if (success.data.code==500 || success.data.code == 20001 || success.data.code==403){
            Message.error({message:success.data.message});
            return;
        }
        //判断后端有没有给返回信息
        if (success.data.message){
            //提示后端给的
            Message.success({message:success.data.message});
        }
    }
    return success.data;
},
    //连接口都没有访问到
    error => {
        if(error.response.code==504 || error.response.code==404){
            Message.error({message:'服务器被吃了！！！'});
        }else if (error.response.code==403){
            Message.error({message:'权限不足，请联系管理员！'});
        }else if (error.response.code == 401){
            Message.error({message:'尚未登录，请登录！！'});
            router.replace('/');
        }else {
            if (error.response.data.message){
                Message.error({message:error.response.data.message});
            }else {
                Message.error({message:'未知错误！！'})
            }
        }
        return;
    });
let base='';

//传送json格式的post请求
export const postRequest = (url, params) => {
    return axios({
        method: 'post',
        url: `${base}${url}`,
        data: params
    })
}
//传送json格式的put请求
export const putRequest=(url,params)=>{
    return axios({
        method:'put',
        url:`${base}${url}`,
        data:params
    })
}
//传送json格式的get请求
export const getRequest=(url,params)=>{
    return axios({
        method:'get',
        url:`${base}${url}`,
        data:params
    })
}
//传送json格式的delete请求
export const deleteRequest=(url,params)=>{
    return axios({
        method:'delete',
        url:`${base}${url}`,
        data:params
    })
}